#include <stdio.h>
#include "cJSON.h"

int main(int argc, char const *argv[])
{
    // 0、打印cjson的版本
    printf("cJson Version = %s\n", cJSON_Version());

    // 1、设计一个cjson数据
    char json_data[] = "{\"name\":\"zhangsan\",\"age\":18,\"address\":{\"city\":\"beijing\",\"zipcode\":100000}}";
    
    // 2、把字符串转换为json数据
    cJSON *json_obj = cJSON_Parse(json_data); 
    if (json_obj == NULL)
    {
       // 获取错误的原因
       const char *err = cJSON_GetErrorPtr();  
       printf("解析cjsn失败:%s\n", err);
    }
    else
    {
        printf("解析json成功\n");
    }

    // 3、获取小对象
    cJSON *small_obj = cJSON_GetObjectItem(json_obj, "address");

    // 4、获取小对象里的键city的值beijing
    // 小对象(address)里的city:
    cJSON *value = cJSON_GetObjectItem(small_obj, "city");
    char *str = cJSON_GetStringValue(value);                    // 转换成字符串打印
    printf("city = %s\n", str);

    // 小对象(address)里的zipcode:
    value = cJSON_GetObjectItem(small_obj, "zipcode");
    printf("zipcode = %0.1f\n", cJSON_GetNumberValue(value));   // 转换成数值打印

    // 5、销毁json对象函数
    cJSON_Delete(value);  


    return 0;
}
/*
    1、你没有编译这个函数所在的.c文件     gcc main.c 1.c 2.c 
    2、你根本没有写这个函数的实现          
    3、你没有编译这个函数的库文件          -L ./lib/
    4、你编译的时候没有指定这个函数的库文件 -lm
*/